package com.ruicar.afs.cloud.afscase.mq.approvesendinfo.service;

import com.ruicar.afs.cloud.afscase.approvetask.entity.CaseApproveRecord;
import com.ruicar.afs.cloud.afscase.mq.approvesendinfo.vo.CaseLogInfo;
import com.ruicar.afs.cloud.afscase.mq.approvesendinfo.vo.UrgentInfo;
import com.ruicar.afs.cloud.afscase.remind.entity.CaseRemindDetail;
import com.ruicar.afs.cloud.common.modules.dto.mq.approve.ApproveOpenDto;
import com.ruicar.afs.cloud.common.modules.dto.mq.approve.CaseUpdateInfoSend;

/**
 * @description: 任务池service
 * @author jiaqi.guo
 * @created 2020/6/20 16:27
 * @version 1.0
 */
public interface ApproveInformInfoService{
    void submitApprovalNotic(CaseApproveRecord record);
    void submitLeaveMessage(CaseRemindDetail remindDetail);
    void submitConditionalApproval(CaseApproveRecord record);
    /**
     * @description: 进件数据落库结果通知
     * @author jiaqi.guo
     * @created 2020/7/3 21:39
     * @version 1.0
     */
    void incomingApplyResult(CaseLogInfo logInfo );
    /**
     * @description: 加急结果通知
     * @author jiaqi.guo
     * @created 2020/7/30 10:34
     * @version 1.0
     */
    void turnUrgentResult(UrgentInfo urgentInfo);

    /**
     * @description: 资产变更数据落库结果通知
     * @author jiaqi.guo
     * @created 2020/7/30 10:33
     * @version 1.0
     */
    void  changeAssetsResult(CaseLogInfo logInfo);


    /**
     * @description: 资产变更审批结果通知
     * @author jiaqi.guo
     * @created 2020/7/30 10:33
     * @version 1.0
     */
    void  approveChangeAssets(CaseApproveRecord approveRecord);

    /**
     * @description: 复议申请审批结果通知
     * @author xiaolong
     * @version 1.0
     */
    void  approveReconsideration(CaseApproveRecord approveRecord);
    /**
     * @description: 资产变更审批通知
     * @author jiaqi.guo
     * @created 2020/8/1 14:54
     * @version 1.0
     */
    void submitApprovalNoticForAssets(CaseApproveRecord record);
    /**
     * @description: 资产变更留言通知
     * @author jiaqi.guo
     * @created 2020/8/1 14:54
     * @version 1.0
     */
    void submitLeaveMessageForAssets(CaseRemindDetail remindDetail);

    /**
     * <p>description:</p>
     * 撤回申请处理结果通知
     * @param applyNO 申请编号
     * @param callBackResult 撤回结果
     * @param lastBusinessStateIn 当前案件的业务状态（内）
     * @author ma_xueyu
     * @created 2020年8月30日
     * @version 1.0
     */
    void submitCallBackResult(String applyNO,String callBackResult,String lastBusinessStateIn);
    /**
     * <p>description:</p>
     * 审批撤回申请
     * @param applyNo 申请编号
     * @param  businessStateIn 当前案件的业务状态（内）
     * @param scheduleId 流程实例表ID
     * @author ma_xueyu
     * @created 2020年9月15日
     * @version 1.0
     */
    void submitApproveCallBackApply(String applyNo,String businessStateIn,String scheduleId);
    /**
     * @description: 审批过程‘打开’状态通知
     * @author jiaqi.guo
     * @created 2020/9/9 15:30
     * @version 1.0
     */
    void incomingApproveOpenResult(ApproveOpenDto approveOpenDto);
    /**
     * @description:附条件核准、核准、退回经销商数据推送
     * @author jiaqi.guo
     * @created 2020/9/18 22:20
     * @version 1.0
     */
    void caseUpdateInfoSend(CaseUpdateInfoSend caseUpdateInfoSend);

    /**
     * @description: 经我处理池子中，业务状态为修订-暂停的案件，追加留言通知进件端
     * @author xiaolong
     * @created 2020/10/11 14:47
     * @version 1.0
     */
    void submitDealWithMessage(CaseRemindDetail remindDetail);

}
